﻿using System;

class GreedyDwarf
{
    static void Main()
    {
        string[] rawNumbers = Console.ReadLine().Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries);
        int[] valleyNumbers = new int[rawNumbers.Length];
        for (int i = 0; i < valleyNumbers.Length; i++)
        {
            valleyNumbers[i] = int.Parse(rawNumbers[i]);
        }

        int numberOfPatterns = int.Parse(Console.ReadLine());
        long bestSum = long.MinValue;
        for (int i = 0; i < numberOfPatterns; i++)
        {
            long sum = ProccessPattern(valleyNumbers);
            if (sum > bestSum)
            {
                bestSum = sum;
            }
        }
        Console.WriteLine(bestSum);
    }
    private static long ProccessPattern(int[] valley)
    {
        string[] rawNumbers = Console.ReadLine().Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries);
        int[] pattern = new int[rawNumbers.Length];
        for (int i = 0; i < pattern.Length; i++)
        {
            pattern[i] = int.Parse(rawNumbers[i]);
        }

        bool[] visited = new bool[valley.Length];
        long coinSum = 0;
        coinSum += valley[0];
        visited[0] = true;
        int currentPosition = 0;    //защото започваме от 0-вата позиция

        while (true)
        {
            for (int i = 0; i < pattern.Length; i++)
            {
                int nextMove = currentPosition + pattern[i];
                if (nextMove >= 0        //проверка дали можем да минем на следващата позиция
                    && nextMove < valley.Length        //проверка дали не сме излезли от масива
                    && !visited[nextMove])          //проверка дали вече не сме били тук "и не сме визитед"
                {
                    coinSum += valley[nextMove];
                    visited[nextMove] = true;
                    currentPosition = nextMove;
                }
                else
                {
                    return coinSum;
                }
            }
        }        
        return 0;
    }

}

